// 入口文件
const express = require(`express`);
const moment = require(`moment`);
// const fs = require(`fs`);
const app = express();
const artTemplate = require(`art-template`);
const express_template = require(`express-art-template`);
// 挂载路由中间件
const router = require(`./router/router.js`)
const frontRouter = require(`./router/frontRouter.js`)

// 托管静态资源中间件
app.use(`/uploads`, express.static(__dirname + `/uploads`));
app.use(`/static`, express.static(__dirname + `/static`));

app.use(express.json()) // for parsing application/json
app.use(express.urlencoded({ extended: true })) // for parsing application/x-www-form-urlencoded

let authMiddleware = require(`./middleware/auth.js`);
let session = require(`./middleware/session.js`);

app.use(session);

//配置模板的路径
app.set(`views`, __dirname + `/view/`);
//设置express_template模板后缀为.html的文件(不设这句话，模板文件的后缀默认是.art)
app.engine(`html`, express_template);
//设置视图引擎为上面的html
app.set(`view engine`, `html`);
// 过滤器
artTemplate.defaults.imports.dateFormat = function (time, format = `YYYY-MM-DD HH:mm:ss`) {
    return moment.unix(time).format(format);
}
artTemplate.defaults.imports.dealDate = function(date,format = `YYYY-MM-DD HH:mm:ss`){
    return moment(date).format(format);
}
//前端路由不需要检验
// app.get('/a',(req,res)=>{
//     res.send('aaa')
// })
// 允许跨域
app.use(function(req,res,next){
    res.setHeader(`Access-Control-Allow-Origin`,`*`)
    next();
})

//前台api接口(不需要校验session权限)
app.use(`/api`,frontRouter)

//设置中间件，统一检验session权限(仅限后端)
app.use(authMiddleware);

// 后台路由中间件（需要校验session权限）
app.use(router);

// app.get('b',(req,res)=>{
//     res.send('bbb')
// })

app.listen(8080, () => {
    console.log(`服务器启动，端口号8080`)
})